4  Visualización

Presentamos un ejemplo para XXX.

Cómo MidJourney imagina que se ilustra este problema bajo el prompt: /imagine a stunning illustration capturing seismic data visualization near the mountains in San Juan. Abstract seismic waves emanate from the mountains, indicating seismic energy, and seismograph traces overlay the landscape, displaying earthquake intensity. Data points scattered around signify seismic events of various magnitudes and depths.

A continuación, se muestran algunos posibles análisis para datos de XXX.

Código
# Librerías necesarias
require(ggplot2)
require(tidyverse)
require(ggfortify)
require(plotly)
require(kableExtra)
require(vroom)
require(leaflet)
library(lubridate)

4.1 Exploración inicial

Los datos de sismos XXX.

Para lo que sigue, trabajamos con el dataset reducido sismos-arg.csv en el que se incluyen datos de sismos de diferente intensidad y magnitud en la región continental del país (excluyendo Tierra del Fuego) desde el 7 de enero de 2012, hasta el 18 de mayo de 2022.

El dataset sismos-arg.csv se encuentra acá. A continuación, se muestran 10 datos de dicho conjunto.

Código
knitr::kable(datos[1:10,], caption = "Dataset reducido")
Dataset reducido
Fecha Hora Latitud Longitud Provincia Percibido Magnitud Profundidad
2022-05-18 13:09:56 -31.820 -67.040 San Juan FALSE 3.0 134
2022-05-18 10:18:34 -24.216 -67.139 Salta FALSE 3.2 185
2022-05-18 09:40:09 -31.262 -68.708 San Juan FALSE 3.3 104
2022-05-18 09:25:43 -32.521 -70.085 San Juan FALSE 2.7 112
2022-05-18 08:45:59 -28.192 -67.376 Catamarca FALSE 2.7 142
2022-05-18 08:42:33 -32.043 -70.030 San Juan FALSE 2.7 114
2022-05-17 23:22:48 -23.442 -66.846 Jujuy FALSE 3.6 210
2022-05-17 21:21:18 -23.503 -66.831 Jujuy FALSE 3.6 210
2022-05-17 17:17:58 -22.794 -66.228 Jujuy FALSE 4.0 273
2022-05-17 14:46:04 -31.505 -68.640 San Juan FALSE 2.7 103

Visualización de sismos percibidos y no percibidos.

Código
sismos_arg <- datos
pal1 <-
  colorNumeric(palette = c("deeppink2", "deeppink4"),
               domain = sismos_arg$Profundidad)
pal2 <-
  colorNumeric(palette = c("dodgerblue2", "dodgerblue4"),
               domain = sismos_arg$Profundidad)

mapa_arg <- sismos_arg %>%
  leaflet(options = leafletOptions(attributionControl = FALSE)) %>%
  addTiles(group = "OSM (default)") %>%
  addProviderTiles("OpenTopoMap",
                   group = "Topográfico",
                   options = providerTileOptions(opacity = 0.5)) %>%
  addCircleMarkers(
    data = sismos_arg %>%
      filter(Percibido == FALSE),
    lng = ~ Longitud,
    lat = ~ Latitud,
    fillOpacity = 0.1,
    radius =  ~ Magnitud,
    color = ~ pal2(Profundidad),
    stroke = FALSE,
    group = "Sismos no percibidos"
  ) %>%
  addCircleMarkers(
    data = sismos_arg %>%
      filter(Percibido == TRUE),
    lng = ~ Longitud,
    lat = ~ Latitud,
    fillOpacity = 0.1,
    radius =  ~ Magnitud,
    color = ~ pal1(Profundidad),
    stroke = FALSE,
    group = "Sismos percibidos"
  ) %>%
  addLayersControl(
    baseGroups = c("OSM (default)", "Topográfico"),
    overlayGroups = c("Sismos no percibidos", "Sismos percibidos"),
    options = layersControlOptions(collapsed = TRUE)
  )

mapa_arg

Visualización de sismos, según magnitud por top de provincias con sismos.

Código
top <-
  c("San Juan",
    "Salta",
    "Jujuy",
    "La Rioja",
    "Mendoza",
    "Catamarca",
    "Córdoba")
pal3 <-
  colorNumeric(
    palette = c("gold", "sienna1", "firebrick", "darkred", "orangered4"),
    domain = sismos_arg$Magnitud
  )

mapa_arg_top <- sismos_arg %>%
  leaflet(options = leafletOptions(attributionControl = FALSE)) %>%
  addTiles(group = "OSM (default)") %>%
  addProviderTiles("OpenTopoMap",
                   group = "Topográfico",
                   options = providerTileOptions(opacity = 0.5)) %>%
  addCircles(
    data = sismos_arg %>%
      filter(Provincia == top[1]),
    lng = ~ Longitud,
    lat = ~ Latitud,
    fillOpacity = 1,
    radius =  ~ Magnitud * 1000,
    color =  ~ pal3(Magnitud),
    stroke = FALSE,
    group = top[1]
  ) %>%
  addCircles(
    data = sismos_arg %>%
      filter(Provincia == top[2]),
    lng = ~ Longitud,
    lat = ~ Latitud,
    fillOpacity = 1,
    radius =  ~ Magnitud * 1000,
    color =  ~ pal3(Magnitud),
    stroke = FALSE,
    group = top[2]
  ) %>%
  addCircles(
    data = sismos_arg %>%
      filter(Provincia == top[3]),
    lng = ~ Longitud,
    lat = ~ Latitud,
    fillOpacity = 1,
    radius =  ~ Magnitud * 1000,
    color =  ~ pal3(Magnitud),
    stroke = FALSE,
    group = top[3]
  ) %>%
  addCircles(
    data = sismos_arg %>%
      filter(Provincia == top[4]),
    lng = ~ Longitud,
    lat = ~ Latitud,
    fillOpacity = 1,
    radius =  ~ Magnitud * 1000,
    color =  ~ pal3(Magnitud),
    stroke = FALSE,
    group = top[4]
  ) %>%
  addCircles(
    data = sismos_arg %>%
      filter(Provincia == top[5]),
    lng = ~ Longitud,
    lat = ~ Latitud,
    fillOpacity = 1,
    radius =  ~ Magnitud * 1000,
    color =  ~ pal3(Magnitud),
    stroke = FALSE,
    group = top[5]
  ) %>%
  addCircles(
    data = sismos_arg %>%
      filter(Provincia == top[6]),
    lng = ~ Longitud,
    lat = ~ Latitud,
    fillOpacity = 1,
    radius =  ~ Magnitud * 1000,
    color =  ~ pal3(Magnitud),
    stroke = FALSE,
    group = top[6]
  ) %>%
  addCircles(
    data = sismos_arg %>%
      filter(Provincia == top[7]),
    lng = ~ Longitud,
    lat = ~ Latitud,
    fillOpacity = 1,
    radius =  ~ Magnitud * 1000,
    color =  ~ pal3(Magnitud),
    stroke = FALSE,
    group = top[7]
  ) %>%
  addLayersControl(
    baseGroups = c("OSM (default)", "Topográfico"),
    overlayGroups = top,
    options = layersControlOptions(collapsed = TRUE)
  )
mapa_arg_top
Código
knitr::kable(sismos_prov, caption = "Resumen por provincias")
Resumen por provincias
Provincia n nperc Magmed Profmed
Buenos Aires 7 5 3.7 31
Catamarca 3317 109 2.8 139
Chaco 3 0 3.3 231
Chubut 1 0 3.8 169
Corrientes 2 0 3.7 267
Córdoba 1145 313 2.8 21
Entre Ríos 1 0 3.8 32
Formosa 3 0 3.8 342
Jujuy 5270 64 3.2 223
La Pampa 5 4 3.6 22
La Rioja 4616 166 2.8 114
Mendoza 4319 303 2.7 31
Neuquén 231 66 3.0 8
Río Negro 1 0 2.9 98
Salta 5781 61 3.2 195
San Juan 29920 619 2.7 106
San Luis 568 69 2.8 22
Santa Cruz 46 22 3.0 14
Santiago del Estero 255 59 3.2 30
Tucumán 326 46 2.8 27
Código
knitr::kable(sismos_prov_porc, caption = "Porcentaje de sismos percibidos para casos de más de 1000 eventos")
Porcentaje de sismos percibidos para casos de más de 1000 eventos
Provincia pperc
Catamarca 3.286102
Córdoba 27.336244
Jujuy 1.214421
La Rioja 3.596187
Mendoza 7.015513
Salta 1.055181
San Juan 2.068850

4.2 Análisis para el caso de San Juan

Percibidos

5 Acerca de los datos

A continuación, se detallan aspectos de los datasets que conformaron el dataset reducido para el desarrollo del ejemplo, a la vez que se incluyen las fuentes de los datos y el código utilizado para pre-procesarlo con la sintaxis de tidyverse. De esta forma, puede fácilmente replicarse y/o adaptarse si así se lo desea.

También se incluye el enlace de descarga al dataset reducido, sismos-arg.csv, con el que se desarrolló el ejemplo.

5.1 Sobre el dataset de sismos

Los datos de este ejemplo corresponden a XXX y se dispone de las siguientes variables.

  • Fecha: fecha, en el formato año-mes-día.
  • Hora: hora, en el formato hora-minuto-segundo.
  • Latitud: latitud del evento registrado.
  • Longitud: latitud del evento registrado.
  • Provincia: nombre de la provincia del evento registrado.
  • Percibido: TRUE si la magnitud fue percibida, FALSE si no lo fue.
  • Magnitud: magnitud del sismo en la escala de Richter.
  • Profundidad: profundidad (km) registrada del sismo.

6 Librerías

Las librerías usadas para el desarrollo de este ejemplo, así como la información de la sesión de R, se muestran en el código que sigue.

Código
require(ggplot2)
require(tidyverse)
require(ggfortify)
require(plotly)
require(kableExtra)
require(vroom)
require(leaflet)
library(lubridate)
Código
sessionInfo()
R version 4.2.3 (2023-03-15 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 22621)

Matrix products: default

locale:
[1] LC_COLLATE=Spanish_Argentina.utf8  LC_CTYPE=Spanish_Argentina.utf8   
[3] LC_MONETARY=Spanish_Argentina.utf8 LC_NUMERIC=C                      
[5] LC_TIME=Spanish_Argentina.utf8    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] leaflet_2.1.2    vroom_1.6.1      kableExtra_1.3.4 plotly_4.10.1   
 [5] ggfortify_0.4.16 lubridate_1.9.2  forcats_1.0.0    stringr_1.5.0   
 [9] dplyr_1.1.2      purrr_1.0.1      readr_2.1.4      tidyr_1.3.0     
[13] tibble_3.2.1     tidyverse_2.0.0  ggplot2_3.4.2   

loaded via a namespace (and not attached):
 [1] svglite_2.1.1           leaflet.providers_1.9.0 digest_0.6.31          
 [4] utf8_1.2.3              R6_2.5.1                evaluate_0.20          
 [7] httr_1.4.5              highr_0.10              pillar_1.9.0           
[10] rlang_1.1.0             lazyeval_0.2.2          rstudioapi_0.14        
[13] data.table_1.14.8       rmarkdown_2.21          labeling_0.4.2         
[16] webshot_0.5.4           htmlwidgets_1.6.2       bit_4.0.5              
[19] munsell_0.5.0           compiler_4.2.3          xfun_0.39              
[22] pkgconfig_2.0.3         systemfonts_1.0.4       htmltools_0.5.5        
[25] tidyselect_1.2.0        gridExtra_2.3           fansi_1.0.4            
[28] viridisLite_0.4.2       crayon_1.5.2            tzdb_0.3.0             
[31] withr_2.5.0             grid_4.2.3              jsonlite_1.8.4         
[34] gtable_0.3.3            lifecycle_1.0.3         magrittr_2.0.3         
[37] scales_1.2.1            cli_3.6.1               stringi_1.7.12         
[40] farver_2.1.1            xml2_1.3.3              ellipsis_0.3.2         
[43] generics_0.1.3          vctrs_0.6.1             tools_4.2.3            
[46] bit64_4.0.5             glue_1.6.2              hms_1.1.3              
[49] crosstalk_1.2.0         parallel_4.2.3          fastmap_1.1.1          
[52] yaml_2.3.7              timechange_0.2.0        colorspace_2.1-0       
[55] rvest_1.0.3             knitr_1.42             

7 Referencias

  • XXX